#ifndef UNIT_TYPES_H_INCLUDED
#define UNIT_TYPES_H_INCLUDED

#include "unit_animation.hpp"
#include "portrait.hpp"
#include "race.hpp"

class attack_type
{
public:
	bool get_special_bool(const std::string& special, bool simple_check = false) const;

	void set_specials_context(const map_location& unit_loc, const map_location& other_loc,
						bool attacking, const attack_type* other_attack) const;
	void set_specials_context(const map_location& loc, bool attacking = true) const;

private:

	mutable map_location self_loc_, other_loc_;
	mutable bool is_attacker_;
	mutable const attack_type* other_attack_;

	config cfg_;
};

class unit_type
{
public:
	enum ALIGNMENT {LAWFUL, NEUTRAL, CHAOTIC, LIMINAL};
};

#endif
